package com.eblacorp.archive.domain.fn;

import com.eblacorp.archive.annotations.Property;
import com.eblacorp.archive.annotations.Property.Access;
import com.filenet.api.constants.PropertyNames;
import com.filenet.api.core.Document;
import com.filenet.api.core.IndependentObject;
import com.filenet.api.util.Id;

public class AbstractDocument implements Archivable{

	private static final long serialVersionUID = 7732267647085328724L;
	
	protected Document document;
	@Property(symbolicName = PropertyNames.ID,
			  access = Access.READ)
	protected Id documentId;
	
	@Property(symbolicName = PropertyNames.IS_CURRENT_VERSION,
			  access = Access.READ)
	protected Boolean currentVersion;
	
	@Property(symbolicName = "DocumentTitle", access = Access.READ_WRITE, required = true)
	protected String documentTitle;
	
	@Property(symbolicName = PropertyNames.MINOR_VERSION_NUMBER, access = Access.READ)
	protected Integer minorVersionNumber;
	
	@Property(symbolicName = PropertyNames.MAJOR_VERSION_NUMBER, access = Access.READ)
	protected Integer majorVersionNumber;
	
//	@Property(symbolicName = PropertyNames.RESERVATION, access = Access.READ)
//	protected IndependentObject reservation;
	
	public Document getDocument() {
		return document;
	}
	public void setDocument(Document document) {
		this.document = document;
	}
	public Id getDocumentId() {
		return documentId;
	}
	public void setDocumentId(Id documentId) {
		this.documentId = documentId;
	}
	public Boolean isCurrentVersion() {
		return currentVersion;
	}
	public void setCurrentVersion(Boolean currentVersion) {
		this.currentVersion = currentVersion;
	}
	public String getDocumentTitle() {
		return documentTitle;
	}
	public void setDocumentTitle(String documentTitle) {
		this.documentTitle = documentTitle;
	}
	public Integer getMinorVersionNumber() {
		return minorVersionNumber;
	}
	public void setMinorVersionNumber(Integer minorVersionNumber) {
		this.minorVersionNumber = minorVersionNumber;
	}
	public Integer getMajorVersionNumber() {
		return majorVersionNumber;
	}
	public void setMajorVersionNumber(Integer majorVersionNumber) {
		this.majorVersionNumber = majorVersionNumber;
	}
	public Boolean getCurrentVersion() {
		return currentVersion;
	}
	
}
